import axios, {AxiosInstance} from 'axios';
import {getToken, removeToken} from "@/api/login.ts";

const http: AxiosInstance = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_URL, // 设置默认的 baseURL
})
http.interceptors.request.use((config) => {
    // 在发送请求之前做些什么
    let token = getToken();
    if (token) {
        config.headers[token.name] = token.value
    }
    return config;
}, (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
})

http.interceptors.response.use(
    (response) => {
        if (response.data.code === 1003) {
            removeToken()
            ElMessage.error(response.data.msg)
            return null;
        }
        // 对响应数据做点什么
        if (response.data.code && response.data.code !== 200) {
            ElMessage.error(response.data.msg)
            return Promise.reject(response.data)
        }
        return response;
    }
    , (error) => {
        // 对响应错误做点什么
        return Promise.reject(error);
    }
)

export default http